package com.train.mgr.modules.biz.dto.response;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.train.mgr.modules.biz.dto.StudyFinishSituationVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;
import java.util.List;
import java.util.Map;

@Data
@ApiModel("课程主页返回对象模型")
public class TraineeCourseHomeDTO {
    private String courseId;
    private String courseName;
    @ApiModelProperty(name = "courseIntroduction", value = "课程简介")
    private String courseIntroduction;
    @ApiModelProperty(name = "deadline", value = "截止时间")
    private String deadline;
    @ApiModelProperty(name = "courseState", value = "截止状态，0：未截至；1：已截止")
    private Integer deadlineState;
    @ApiModelProperty(name = "lessonCount", value = "课时数量")
    private Integer lessonCount;
    @ApiModelProperty(name = "finishLessonCount", value = "课时完成数量")
    private Integer finishLessonCount;
    @ApiModelProperty(name = "sutdyUserCount", value = "学员人数")
    private Integer studyUserCount;

    @ApiModelProperty(name = "isSelfGroup", value = "是否学员自选分组（0：否，1：是）")
    private Integer isSelfGroup;

    @ApiModelProperty(name = "isJoinGroup", value = "学员已加入分组（0：否，1：是）")
    private Integer isJoinGroup;

    @ApiModelProperty(name = "reviewStatus", value = "加入课程状态，0：未通过，1：已通过，2:已提交申请")
    private Integer reviewStatus;
    @ApiModelProperty(name = "isFinished", value = "是否完成课程（0：未完成；1：已完成）")
    private Integer isFinished;
    @ApiModelProperty(name = "lessons", value = "课时列表")
    private List<LessonDTO> lessons;
    @Data
    public static class LessonDTO {
        @ApiModelProperty(name = "lessonId", value = "课时ID")
        private String lessonId;
        @ApiModelProperty(name = "lessonName", value = "课时名称")
        private String lessonName;
        @ApiModelProperty(name = "lessonOrder", value = "课时序号")
        private String lessonOrder;
        @ApiModelProperty(name = "lessonFinishCompletion", value = "完成情况;返回一个从0到1的小数")
        private String lessonFinishCompletion;

        @ApiModelProperty(name = "salesLanguageMap", value = "销售话术(MAP格式)")
        private Map<String, String> salesLanguageMap;

        @ApiModelProperty(name = "keywords", value = "关键字")
        private String keywords;

        @JsonIgnore
        private Date lessonCreateTime;

        @ApiModelProperty(name = "practiceProjects", value = "练习项目")
        private List<StudyFinishSituationVo> practiceProjects;

        @ApiModelProperty(name = "files", value = "课时资料")
        private List<FileDto> files;
    }

}
